A card transaction can be created by calling the POST /transactions API. The call requires an amount, currency, and a payment_method for the card.

Check out our guides to learn more about payment methods and the ability to tie a payment method to a buyer.

curl -i -X POST "https://api.example.gr4vy.app/transactions" \
    -H "Authorization: Bearer [JWT_TOKEN]" \
    -H "Content-Type: application/json" \
    -d '{
          "amount": 1299,
          "currency": "AUD",
          "payment_method": {
            "method": "card",
            "number": "4111111111111111",
            "expiration_date": "11/25",
            "security_code": "123"
          }
        }'

This API will return the authorized transaction. The status of this transaction can vary for a few reasons including the status provided by the payment service, as well as the requested intent.

Statuses

See our guide on transaction statuses for more details.

Capture

By default a card transaction is only authorized and not automatically captured. A transaction can be captured either directly when creating a transaction, or as a separate API call.

Simultaneous authorize and capture

To capture a transaction immediately, set the intent to capture.

curl -i -X POST "https://api.example.gr4vy.app/transactions" \
    -H "Authorization: Bearer [JWT_TOKEN]" \
    -H "Content-Type: application/json" \
    -d '{
          "amount": 1299,
          "currency": "AUD",
          "intent": "capture",
          "payment_method": {
            "method": "card",
            "number": "4111111111111111",
            "expiration_date": "11/25",
            "security_code": "123"
          }
        }'

Capture after authorization

Alternatively, it is possible to perform a capture on a previously authorized transaction by calling the POST /transactions/{transaction_id}/capture API.

curl -i -X POST "https://api.example.gr4vy.app/transactions/fe26475d-ec3e-4884-9553-f7356683f7f9/capture \
    -H "Authorization: Bearer [JWT_TOKEN]"