Authorize Recurring Payment

Authorizes a recurring payment using a billing agreement token. This endpoint performs authorization only, requiring a separate capture step. *Deprecated. For new integrations, see [Grants](https://afterpay.docs.buildwithfern.com/afterpay-online-developer/api-reference/reference/grants/start-grant-approval).*

Authentication

AuthorizationBasic

Basic authentication of the form Basic <base64(username:password)>.

Headers

User-AgentstringRequired
AcceptstringOptionalDefaults to application/json

Request

The request containing the payment details to authorize
requestIdstringRequiredformat: "uuid"<=64 characters
A unique identifier for the request, used for idempotency
paymentMethodobjectRequired
amountobjectRequired
The total amount of the payment
consumerobjectOptional

The consumer data model is used for gathering essential user information. It captures details such as the individual’s first name, represented by givenNames, and their last name, captured under surname. In addition, it stores the user’s contact number under phoneNumber and their email address under email. These fields collectively provide indispensable contact and identification details for a user.

billingobjectOptional

This data model is used for storing an individual’s contact information. Mandatory fields such as name, line1, area1, region, postcode, and countryCode help in capturing vital information about a user’s location.

The line2 and area2 fields provide additional space for extended addresses, while phoneNumber can be used to store the user’s contact number.

Important Note

The area1, area2 and region properties feature localized terminology based on country. Refer to the property descriptions for insights on each country’s specific usage

shippingobjectOptional

This data model is used for storing an individual’s contact information. Mandatory fields such as name, line1, area1, region, postcode, and countryCode help in capturing vital information about a user’s location.

The line2 and area2 fields provide additional space for extended addresses, while phoneNumber can be used to store the user’s contact number.

Important Note

The area1, area2 and region properties feature localized terminology based on country. Refer to the property descriptions for insights on each country’s specific usage

courierobjectOptional

Essential information for tracking a shipment. The shippedAt key represents the date and time when the item was shipped. This value follows the ISO 8601 standard format for date and time representations.

The name field indicates the courier service employed to handle the shipment (e.g. FEDEX, UPS). For orders that are picked up in-store (also known as Buy-Online-Pickup-Instore), please use “INSTORE_PICKUP” as the name field value.

The tracking key represents a unique tracking number provided by the courier service to monitor the shipment’s progress. It’s a valuable tool for customers and businesses to track and trace their packages.

The priority field tracks the shipping speed or service level associated with the delivery.

itemslist of objectsOptional
discountslist of objectsOptional
descriptionstringOptional<=256 characters
merchantobjectOptional
merchantReferencestringOptional<=128 characters

The reference/order ID in the merchant’s system

shippingAmountobjectOptional
The shipping cost amount
taxAmountobjectOptional
The tax amount
custommap from strings to anyOptional

Custom key-value pairs for merchant use

paymentScheduleChecksumstringOptional
Payment schedule validation checksum
enrichmentsobjectOptional

Response

If the payment is approved by Afterpay, a Payment object is returned with a status of APPROVED and a paymentState of AUTH_APPROVED.

idstring
The unique, permanent, Afterpay generated Order ID.
tokenstring
The token obtained from the checkout call
statusenum
represents the status of the order
Allowed values:
createdstring
is the UTC timestamp of when the payment was completed.
originalAmountobject

Object containing amount and currency.

Where a Money object is included in an API request, it will be validated according to the specification above. Invalid Money objects will trigger a 422 Unprocessable Entity response. The following is a list of common examples:

ExampleerrorCodemessage
amount is omitted or nullinvalid_object{Money object}.amount Amount field required
amount has more than 2 decimal placesinvalid_object amountmust be a valid ISO 4217 format value
amount includes a thousands separator comma, for example: “1,000”invalid_amountAmount must be a valid ISO 4217 format value
amount is not a decimal number, for example: “FREE”, “$2” or an empty stringinvalid_object{Money object}.amount Amount field must be a valid ISO 4217 format value
currency is omitted or nullinvalid_object{Money object}.currency Currency field required
currency is not a valid currency code, not all uppercase or an empty stringinvalid_object{Money object}.currency Currency not supported for this merchant
currency is supported by Afterpay, but not valid for the Merchant accountunsupported_currencyAn error occurred
openToCaptureAmountobject

Object containing amount and currency.

Where a Money object is included in an API request, it will be validated according to the specification above. Invalid Money objects will trigger a 422 Unprocessable Entity response. The following is a list of common examples:

ExampleerrorCodemessage
amount is omitted or nullinvalid_object{Money object}.amount Amount field required
amount has more than 2 decimal placesinvalid_object amountmust be a valid ISO 4217 format value
amount includes a thousands separator comma, for example: “1,000”invalid_amountAmount must be a valid ISO 4217 format value
amount is not a decimal number, for example: “FREE”, “$2” or an empty stringinvalid_object{Money object}.amount Amount field must be a valid ISO 4217 format value
currency is omitted or nullinvalid_object{Money object}.currency Currency field required
currency is not a valid currency code, not all uppercase or an empty stringinvalid_object{Money object}.currency Currency not supported for this merchant
currency is supported by Afterpay, but not valid for the Merchant accountunsupported_currencyAn error occurred
paymentStateenumRead-only
is the current state for capturing payments
merchantReferencestring

is the merchant’s order id/reference that the payment corresponds to.

refundslist of objects
orderDetailsobject
This comprehensive schema is designed to store an entire transaction's detail, covering crucial aspects like consumer information, billing and shipping details, courier particulars, item list, discounts, tax, and shipping amount.
eventslist of objects
agreementslist of objects

List of billing agreements utilized or created if any (field omitted if empty)

Errors

402
Payment Required Error
412
Precondition Failed Error
415
Unsupported Media Type Error
422
Unprocessable Entity Error