POST
/api/members/{memberId}/payment-methods
const url = 'https://example.com/api/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/payment-methods';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"merchantId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","memberId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","type":"Card","accountName":"example","cardNumber":"example","cvv":"example","expiryMonth":1,"expiryYear":1,"bsb":"example","accountNumber":"example","isDefault":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/members/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/payment-methods \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "merchantId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "memberId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "type": "Card", "accountName": "example", "cardNumber": "example", "cvv": "example", "expiryMonth": 1, "expiryYear": 1, "bsb": "example", "accountNumber": "example", "isDefault": true }'Sends the card or bank account to the payment gateway, which returns a token. The token is what we store. Raw card and account numbers go straight to the gateway and are never saved by Topiic.
POST /api/members/{memberId}/payment-methods
{
"merchantId": "...",
"type": "Card",
"accountName": "Jane Smith",
"cardNumber": "4111111111111111",
"cvv": "123",
"expiryMonth": 12,
"expiryYear": 2030
}Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ” memberId
required
string format: uuid
The member’s unique identifier.
Request Body
Section titled “Request Body ”Payment method payload.
object
merchantId
required
string format: uuid
memberId
string format: uuid
type
required
string
accountName
required
string
cardNumber
string
cvv
string
expiryMonth
integer format: int32
expiryYear
integer format: int32
bsb
string
accountNumber
string
isDefault
boolean
object
merchantId
required
string format: uuid
memberId
string format: uuid
type
required
string
accountName
required
string
cardNumber
string
cvv
string
expiryMonth
integer format: int32
expiryYear
integer format: int32
bsb
string
accountNumber
string
isDefault
boolean
object
merchantId
required
string format: uuid
memberId
string format: uuid
type
required
string
accountName
required
string
cardNumber
string
cvv
string
expiryMonth
integer format: int32
expiryYear
integer format: int32
bsb
string
accountNumber
string
isDefault
boolean
Responses
Section titled “ Responses ”Payment method stored successfully.
Media type application/json
object
id
string format: uuid
merchantId
string format: uuid
memberId
string format: uuid
type
string
brand
string
last4
string
expiryMonth
integer format: int32
expiryYear
integer format: int32
accountName
string
bsb
string
isDefault
boolean
createdAt
string format: date-time
updatedAt
string format: date-time
Example
{ "type": "Card"}Validation failed — check the errors object.
Media type application/json
object
type
string
title
string
status
integer format: int32
detail
string
instance
string
key
additional properties
Example generated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}