API : abonnements

Les abonnements ne sont pas encore disponibles dans la v3 de Snipcart.

Récupérez et gérez vos abonnements par le biais de ces points de terminaison. Vous pouvez les lister et obtenir des détails spécifiques sur les abonnements. Vous pouvez également annuler, suspendre et reprendre un abonnement.

## GET /subscriptions

Cette méthode retourne une liste d'abonnements.

URL de la ressource

GET https://app.snipcart.com/api/subscriptions

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
limit Non int Le nombre maximum d'éléments retournés par la requête. La valeur par défaut est 20.
offset Non int Le nombre d'éléments qui seront ignorés. La valeur par défaut est 0.
from Non datetime Filtre les abonnements pour retourner ceux qui commencent à la date spécifiée.
to Non datetime Filtre les abonnements pour retourner ceux qui se terminent à la date spécifiée.
userDefinedPlanName Non string Filtre les abonnements pour retourner ceux qui correspondent au nom du plan spécifié.
status Non enum Filtre les abonnements pour retourner ceux qui ont l'état spécifié. Les valeurs possibles sont : active, paused ou canceled.
userDefinedCustomerNameOrEmail Non string Filtre les abonnements pour retourner ceux qui appartiennent au nom ou au courriel du client spécifié.

Exemple de requête

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/subscriptions?limit=50&offset=0&status=active |
  -u {API_KEY}:

Exemple de réponse

{
    "userDefinedPlanName": null,
    "userDefinedCustomerNameOrEmail": null,
    "status": null,
    "from": null,
    "to": null,
    "totalItems": 58,
    "offset": 0,
    "limit": 20,
    "items": [
        {
            "user": {
                "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
                "email": "email@email.com"
            },
            "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
            "firstInvoiceReceivedOn": null,
            "schedule": {
                "interval": "Month",
                "intervalCount": 0,
                "trialPeriodInDays": null,
                "startsOn": "2017-10-24T00:00:00Z"
            },
            "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
            "id": "84983d03-775a-4e79-804a-af807f509700",
            "name": "Monthly subscription",
            "creationDate": "2017-10-13T14:26:56.11Z",
            "modificationDate": "2017-10-13T14:26:56.11Z",
            "cancelledOn": null,
            "amount": 20,
            "quantity": 1,
            "userDefinedId": "PLAN_1",
            "totalSpent": 20,
            "status": "Paid",
            "gatewayId": "sub_BZdOKYWblHCy0Z",
            "metadata": null,
            "cartId": null,
            "recurringShipping": true
        },
        {
            "user": {
                "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
                "email": "email@email.com"
            },
            "initialOrderToken": "ccd46b9b-e595-46ce-bc80-d11565e4a455",
            "firstInvoiceReceivedOn": null,
            "schedule": {
                "interval": "Month",
                "intervalCount": 0,
                "trialPeriodInDays": null,
                "startsOn": "2017-10-24T00:00:00Z"
            },
            "itemId": "e24ce7b1-632d-4c8c-898a-5a0a5cfa1a8c",
            "id": "b55f8a6d-6291-45b9-9ba2-4e134d36317f",
            "name": "Monthly subscription",
            "creationDate": "2017-10-12T21:57:14.637Z",
            "modificationDate": "2017-10-12T21:57:14.637Z",
            "cancelledOn": null,
            "amount": 20,
            "quantity": 1,
            "userDefinedId": "PLAN_1",
            "totalSpent": 20,
            "status": "Paid",
            "gatewayId": "sub_BZNQIG8RlhP3Io",
            "metadata": null,
            "cartId": null,
            "recurringShipping": true
        }
    ]
}
## GET /subscriptions/{id}

Cette méthode retourne un abonnement par son identifiant unique.

URL de la ressource

GET https://app.snipcart.com/api/subscriptions/{id}

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Non uniqueidentifier L'identifiant unique de l'abonnement.

Exemple de requête

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/subscriptions/{id} \
  -u {API_KEY}:

Exemple de réponse

{
    "user": {
        "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
        "email": "email@email.com"
    },
    "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
    "firstInvoiceReceivedOn": null,
    "schedule": {
        "interval": "Month",
        "intervalCount": 0,
        "trialPeriodInDays": null,
        "startsOn": "2017-10-24T00:00:00Z"
    },
    "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
    "id": "84983d03-775a-4e79-804a-af807f509700",
    "name": "Monthly subscription",
    "creationDate": "2017-10-13T14:26:56.11Z",
    "modificationDate": "2017-10-13T14:26:56.11Z",
    "nextBillingDate": "2017-10-23T14:26:56.11Z",
    "cancelledOn": null,
    "amount": 20,
    "quantity": 1,
    "userDefinedId": "PLAN_1",
    "totalSpent": 20,
    "status": "Paid",
    "gatewayId": "sub_BZdOKYWblHCy0Z",
    "metadata": null,
    "cartId": null,
    "recurringShipping": true
    }
## GET /subscriptions/{id}/invoices

Cette méthode permet d'obtenir la liste des factures associées à un abonnement.

URL de la ressource

GET https://app.snipcart.com/api/subscriptions/{id}/invoices

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Non uniqueidentifier L'identifiant unique de l'abonnement.

Exemple de requête

curl -H "Accept: application/json" \
  https://app.snipcart.com/api/subscriptions/{id}/invoices \
  -u {API_KEY}:

Exemple de réponse

[
    {
        "id": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
        "orderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
        "creationDate": "2017-10-13T14:26:52Z",
        "modificationDate": "2017-10-13T14:26:56Z",
        "subscriptionId": "84983d03-775a-4e79-804a-af807f509700",
        "amount": 31.5,
        "paid": true,
        "taxes": [],
        "number": "SNIP-1061",
        "total": 31.5
    }
]
## DELETE /subscriptions/{id}

Cette méthode peut être utilisée pour annuler un abonnement.

URL de la ressource

DELETE https://app.snipcart.com/api/subscriptions/{id}

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Non uniqueidentifier L'identifiant unique de l'abonnement.

Exemple de requête

curl https://app.snipcart.com/api/subscriptions/{id} \
    -X DELETE \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -u {API_KEY} \

Exemple de réponse

{
    "user": {
        "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
        "email": "email@email.com"
    },
    "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
    "firstInvoiceReceivedOn": null,
    "schedule": {
        "interval": "Month",
        "intervalCount": 0,
        "trialPeriodInDays": null,
        "startsOn": "2017-10-24T00:00:00Z"
    },
    "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
    "id": "84983d03-775a-4e79-804a-af807f509700",
    "name": "Monthly subscription",
    "creationDate": "2017-10-13T14:26:56.11Z",
    "modificationDate": "2017-10-13T14:26:56.11Z",
    "cancelledOn": "2017-10-13T14:26:56.11Z",
    "amount": 20,
    "quantity": 1,
    "userDefinedId": "PLAN_1",
    "totalSpent": 20,
    "status": "Canceled",
    "gatewayId": "sub_BZdOKYWblHCy0Z",
    "metadata": null,
    "cartId": null,
    "recurringShipping": true
    }
## POST /subscriptions/{id}/pause

Cette méthode peut être utilisée pour suspendre un abonnement actif. En-dessous, une remise de 100 % sera appliquée à l'abonnement Stripe.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Non uniqueidentifier L'identifiant unique de l'abonnement.

Exemple de requête

curl https://app.snipcart.com/api/subscriptions/{id}/pause \
    -X POST \
    -H "Accept: application/json"
    -u {API_KEY}

Exemple de réponse

{
    "user": {
        "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
        "email": "email@email.com"
    },
    "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
    "firstInvoiceReceivedOn": null,
    "schedule": {
        "interval": "Month",
        "intervalCount": 0,
        "trialPeriodInDays": null,
        "startsOn": "2017-10-24T00:00:00Z"
    },
    "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
    "id": "84983d03-775a-4e79-804a-af807f509700",
    "name": "Monthly subscription",
    "creationDate": "2017-10-13T14:26:56.11Z",
    "modificationDate": "2017-10-13T14:26:56.11Z",
    "cancelledOn": null,
    "amount": 20,
    "quantity": 1,
    "userDefinedId": "PLAN_1",
    "totalSpent": 20,
    "status": "Paused",
    "gatewayId": "sub_BZdOKYWblHCy0Z",
    "metadata": null,
    "cartId": null,
    "recurringShipping": true
    }
## POST /subscriptions/{id}/resume

Cette méthode peut être utilisée pour reprendre un abonnement suspendu. En-dessous, le rabais de 100% précédemment créé sur l'abonnement Stripe sera supprimé.Le système supprimera le rabais de 100 % créé précédemment sur l'abonnement Stripe.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Non uniqueidentifier L'identifiant unique de l'abonnement.

Exemple de requête

curl https://app.snipcart.com/api/subscriptions/{id}/resume \
    -X POST \
    -H "Accept: application/json"
    -u {API_KEY}

Exemple de réponse

{
    "user": {
        "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
        "email": "email@email.com"
    },
    "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
    "firstInvoiceReceivedOn": null,
    "schedule": {
        "interval": "Month",
        "intervalCount": 0,
        "trialPeriodInDays": null,
        "startsOn": "2017-10-24T00:00:00Z"
    },
    "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
    "id": "84983d03-775a-4e79-804a-af807f509700",
    "name": "Monthly subscription",
    "creationDate": "2017-10-13T14:26:56.11Z",
    "modificationDate": "2017-10-13T14:26:56.11Z",
    "cancelledOn": null,
    "amount": 20,
    "quantity": 1,
    "userDefinedId": "PLAN_1",
    "totalSpent": 20,
    "status": "Active",
    "gatewayId": "sub_BZdOKYWblHCy0Z",
    "metadata": null,
    "cartId": null,
    "recurringShipping": true
    }
## PUT /subscriptions/{id}

Cette méthode peut être utilisée pour mettre à jour un abonnement existant. Si vous modifiez l'intervalle ou le nombre d'intervalles, le client sera immédiatement facturé pour le nouveau montant de l'abonnement. Si vous modifiez uniquement le montant, le nouveau prix sera appliqué uniquement aux factures planifiées et à venir.

En-têtes

Nom Valeur Obligatoire? Description
Accept application/json Oui Notre API n'accepte que le type de contenu application/json, vous devez donc toujours spécifier l'en-tête Accept: application/json dans chaque requête que vous effectuez.

Paramètres

Nom Obligatoire? Type Description
id Oui (paramètre d'URL) uniqueidentifier L'identifiant unique de l'abonnement.
amount Oui decimal Le prix de l'abonnement récurrent.
nextBillingDate Non datetime La date du prochain paiement. Le système fixera une période d'essai sur l'abonnement jusqu'à la date spécifiée dans ce paramètre.
quantity Non integer La quantité de produits dans l'abonnement. Par exemple, 2 abonnements mensuels de 10 $ donneront lieu à une commande mensuelle de 20 $.
schedule Oui object L'horaire de l'abonnement récurrent. Plus de détails sur les paramètres des objets ci-dessous.
metadata Non object Informations personnalisées stockées avec l'abonnement.

Horaire

Nom Obligatoire? Type Description
interval Oui enum L'intervalle auquel l'abonnement se renouvelle, valeurs possibles : Year, Month, Week, Day.
intervalCount Non integer Le nombre d'intervalles. Par exemple, si interval est Month et intervalCount est 2, l'abonnement se renouvellera tous les deux mois.

Exemple de requête

curl https://app.snipcart.com/api/subscriptions/c7af6278-1c06-411d-b009-22a839efda75 -X PUT \
-H "Content-Type: application/json" \
-H "Accept: application/json" -u {YOUR_API_KEY}: \
-d "{'amount': 100, 'quantity': 1, 'schedule': { 'interval': 'Month', 'intervalCount': 2}}"

Exemple de réponse

{
    "user": {
        "id": "53d0c151-4005-4e72-ba02-8c12d7f41569",
        "email": "email@email.com"
    },
    "initialOrderToken": "3ce678ba-9c34-431e-8f92-b3e74b51bd59",
    "firstInvoiceReceivedOn": null,
    "schedule": {
        "interval": "Month",
        "intervalCount": 2,
        "trialPeriodInDays": null,
        "startsOn": "2019-03-06T00:00:00Z"
    },
    "itemId": "198520a0-d12d-44d6-b57f-6617299c5405",
    "id": "c7af6278-1c06-411d-b009-22a839efda75",
    "name": "Monthly subscription",
    "creationDate": "2019-03-06T14:26:56.11Z",
    "modificationDate": "2019-03-06T14:26:56.11Z",
    "cancelledOn": null,
    "amount": 20,
    "quantity": 1,
    "userDefinedId": "PLAN_1",
    "totalSpent": 20,
    "status": "Paid",
    "gatewayId": "sub_BZdOKYWblHCy0Z",
    "metadata": null,
    "cartId": null,
    "recurringShipping": true
    }