Create a payment method
POSThttps://app.shuttleglobal.com/c/api/instances/{instance_key}/payment_methods
Create a new payment method. This API supports two main use cases:
- Data import/copy (token import)
- Third-party UI integration (payment details capture and gateway tokenization)
For third-party UI integration or custom tokenization flows, please contact support as additional gateway-specific requirements may apply.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
object
Account ID or CRM key
object
Company name
Your identifier for the account
Email address. Invalid addresses are accepted to prevent interrupting payments due to email validation issues. Client applications can implement their own validation if needed.
First name of the account holder
Last name of the account holder
Phone number. Any format is accepted to prevent interrupting payments due to phone validation issues. Client applications can implement their own validation if needed.
Address fields. All fields are optional and any values are accepted to prevent interrupting payments due to address validation issues. Field behavior:
- When updating an address, the entire address object is replaced with the new values
- To clear/null out all address fields, set each field to an empty string Client applications can implement their own validation if needed.
object
Country code (any format accepted). Set to empty string to clear.
First line of the address. Set to empty string to clear.
Second line of the address. Set to empty string to clear.
Third line of the address. Set to empty string to clear.
City/Town. Set to empty string to clear.
Postcode/ZIP. Set to empty string to clear.
State/Region. Set to empty string to clear.
Custom key-value pairs stored on the account
object
CSV of tags/references for searching
Locale of the user
Timezone in IANA format
Address fields. All fields are optional and any values are accepted to prevent interrupting payments due to address validation issues. Field behavior:
- When updating an address, the entire address object is replaced with the new values
- To clear/null out all address fields, set each field to an empty string Client applications can implement their own validation if needed.
object
Country code (any format accepted). Set to empty string to clear.
First line of the address. Set to empty string to clear.
Second line of the address. Set to empty string to clear.
Third line of the address. Set to empty string to clear.
City/Town. Set to empty string to clear.
Postcode/ZIP. Set to empty string to clear.
State/Region. Set to empty string to clear.
Your ID for this payment method
Expiry date in MM/YYYY format
Gateway this payment method is linked to
Last 4+ digits of the payment method identifier
Must be true for token import, false for third-party UI integration
Display name of the payment method
Whether CVC is required for ecommerce/MOTO payments
Initial status of the payment method
Gateway token (format varies by gateway)
Payment method type (e.g., VISA, MASTERCARD, SEPA, ACH)
Source of the payment method
CSV of tags/references
Custom key-value pairs
object
Card BIN number
Card number. Non-digits are stripped. Required unless a bank detail set, a wallet detail set or a token is sent.
Card expiry. Alias of expiry. Accepts MMYY, MM/YY, M/YY or MYY and is stored as a month.
Card security code. Passed to the gateway and never stored.
IBAN. Alias sepa_iban. Makes the method SEPA.
Name on the bank account. Aliases cardholder_name, sepa_account_holder_name, ach_account_holder_name.
Bank account type: checking, savings or businessChecking. Alias ach_account_type. Makes the method ACH.
Bank routing number. Alias ach_routing_number.
Bank account number. Alias ach_account_number. Makes the method BACS when no other type applies.
Ids of the contracts this payment method is attached to once it is active.
Responses
Section titled “Responses”Payment method created
object
object
Unique identifier for the payment method
/^pm_[0-9]+_[0-9a-z]+$/Account ID this payment method belongs to
Address fields. All fields are optional and any values are accepted to prevent interrupting payments due to address validation issues. Field behavior:
- When updating an address, the entire address object is replaced with the new values
- To clear/null out all address fields, set each field to an empty string Client applications can implement their own validation if needed.
object
Country code (any format accepted). Set to empty string to clear.
First line of the address. Set to empty string to clear.
Second line of the address. Set to empty string to clear.
Third line of the address. Set to empty string to clear.
City/Town. Set to empty string to clear.
Postcode/ZIP. Set to empty string to clear.
State/Region. Set to empty string to clear.
180Number of hours this payment method requires between a payment being instructed and the funds settling at the bank. Returned by gateways for schemes that need lead time (e.g., BACS, SEPA, ACH, PAD, BECS). Absent / null for card and wallet methods.
When set, Shuttle schedules each charge and its payment attempt this many hours before the charge’s due date — the due date itself is unchanged, but the charge is generated and sent to the gateway earlier so the customer is debited on time. See the Scheduler guide for details.
When the payment method was archived (deleted)
Link for 3DS or equivalent process during creation
Your ID for this payment method
When the payment method was created
Session that created this payment method
Expiry date in MM/YYYY format
Reason this payment method is not working
When this payment method stopped working
Gateway this payment method is linked to
Group identifier for gateways that support payment method sharing. When present, this payment method can be used across any gateway that shares the same gateway_group. This feature is only supported on specific gateway implementations.
Gateway’s status of the payment method
Last 4+ digits of the payment method identifier
When this payment method was last used
ID of the legal mandate where applicable
Link to the legal mandate where applicable
Customer-facing mandate reference number
Legal text of the mandate
Display name of the payment method
Whether CVC is required for ecommerce/MOTO payments
Where the payment method was captured
Current status of the payment method
Free text substatus (e.g., mandate status for GOCARDLESS)
Description of the substatus
CSV of tags/references
Custom key-value pairs
object
Card BIN number
Name on the card
Electronic Commerce Indicator value
Whether this payment method uses a network token
Source card type
Gateway token (only for ACTIVE and FAILING methods)
Payment method type (e.g., VISA, MASTERCARD, SEPA, ACH)
Session that last updated this payment method
Version of the record
Bad request
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Authentication required
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Example
{ "code": "UNAUTHORIZED", "message": "Unauthorised"}Instance not found (only checked after successful authentication)
Every error has a code and a message. Some add more fields alongside them, with detail about the error.
object
The error code, for example VALIDATION_ERROR, INVALID, INVALID_REQUEST, UNAUTHORIZED, FORBIDDEN or NOT_FOUND. Program against this, not the message.
What went wrong, in words, for logs and support.
Internal server error
object
object
Was this page helpful?
What went wrong?
Thanks for telling us.