Skip to main content

Charge with a Token

Once you have an active token — from saving a payment method during a payment or from the default /tokens flow — you can use it to charge the customer again without them re-authenticating.

Create a payment with a token​

Only active tokens can be used for payments. If the token is initiated or inactive, the payment will be rejected.

Endpoint: POST /v1/payments

POST /v1/payments
{
"amount": 10000,
"currency": "SAR",
"callback_url": "https://merchant.example/return",
"source": {
"type": "token",
"token": "token_qbmmXzo97AESrZLS6KpWvof6uK2hAKcQGfEcKg"
}
}
POST /v1/payments
curl -X POST https://api.moyasar.com/v1/payments \
-u pk_test_YOUR_PUBLISHABLE_KEY: \
-H "Content-Type: application/json" \
-d '{
"amount": 10000,
"currency": "SAR",
"callback_url": "https://merchant.example/return",
"source": {
"type": "token",
"token": "token_qbmmXzo97AESrZLS6KpWvof6uK2hAKcQGfEcKg"
}
}'

By default, 3DS is not triggered for token payments — the payment method was already verified when the token was created or saved. Tokens created via the save-only flow always trigger 3DS. To explicitly trigger 3DS on other tokens, add "3ds": true inside source.

Source parameters​

FieldRequiredDescription
typeYesMust be "token"
tokenYesThe token ID (e.g. token_...)
cvcNoCard verification code. Some issuers require it for recurring charges
3dsNoSet to true to force a 3DS challenge. Defaults to false
manualNoSet to true to place the payment in manual capture mode. Defaults to false

Show the saved payment method to your customer​

Fetch the token to display the payment method details — useful for letting customers confirm what they're being charged with.

GET /v1/tokens/:id
curl https://api.moyasar.com/v1/tokens/token_qbmmXzo97AESrZLS6KpWvof6uK2hAKcQGfEcKg \
-u sk_test_YOUR_SECRET_KEY:
Token response
{
"id": "token_qbmmXzo97AESrZLS6KpWvof6uK2hAKcQGfEcKg",
"status": "active",
"brand": "visa",
"funding": "credit",
"country": "SA",
"month": "12",
"year": "2030",
"name": "John Doe",
"last_four": "1111",
"metadata": null,
"created_at": "2024-01-15T10:00:00.000Z",
"updated_at": "2024-01-15T10:00:00.000Z"
}

Delete a token​

When a customer removes a saved payment method, delete the token so it can no longer be charged.

DELETE /v1/tokens/:id
curl -X DELETE https://api.moyasar.com/v1/tokens/token_qbmmXzo97AESrZLS6KpWvof6uK2hAKcQGfEcKg \
-u sk_test_YOUR_SECRET_KEY:

A successful deletion returns an empty 204 No Content response. Tokens are also automatically invalidated when the underlying payment method expires.